using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace PHSRAG.Insight21.Humans
{
    public class AnimalsRexParams : RexParams
    {

        #region Constructor
        public AnimalsRexParams()
        {
            
            housingLocation = new ArrayList();
            specialHandling = new ArrayList();
            considerations = new ArrayList();
            tumorCellLines = new ArrayList();
            hazardousAgents = new ArrayList();
            procedures = new ArrayList();
            tissues = new ArrayList();
            labLocations = new ArrayList();
			boardReviews = new ArrayList();


            // Per Irina, this isn't used in Rex, so 
            // default to TRUE
            specialConsideration = true;

            catBNum = 0;
            catCNum = 0;
            catDNum = 0;
            catENum = 0;

        }
        #endregion

        #region protocol variables
        private bool housingOver12;
        private bool fedFund;
        private bool resubmission;
        private bool specialConsideration;
       
        private ArrayList housingLocation;
        private ArrayList specialHandling;
        private ArrayList considerations;
        private ArrayList tumorCellLines;
        private ArrayList hazardousAgents;
        private ArrayList procedures;
        private ArrayList labLocations;
        private ArrayList tissues;
		private ArrayList boardReviews;

        private int catBNum;
        private int catCNum;
        private int catDNum;
        private int catENum;
        private int periodID;
        private int animalsOrdered;
        private int animalsReported;
        private int adultsOrdered;
        private int adultsReported;
        private int femaleLitterOrdered;
        private int femaleLitterReported;
        private int generatedReported; 
        private int otherOrdered;
        private int otherReported;
        private int totalNumberOfAnimals;

        private string housingLocationOther;
        private string previousFolderNumber;
        private string objective;
        private string significance;
        private string simExp;
        private string prior;
        private string endpoints;
        private string projectStatus;
        private string annReviewNotes;

        private DateTime dateClosed;
        private bool isAmendment;
      
        #endregion

        #region TumorCellLine
        public class TumorCellLine
        {
            #region private members
            private string tumorCellLine;
            private string rodentOrigin;
            private string originOther;
            private bool passRodent;
            #endregion

            #region public props
            public bool PassRodent
            {
                get { return passRodent; }
                set { passRodent = value; }
            }

            public string TumorCellLineName
            {
                get { return tumorCellLine; }
                set { tumorCellLine = value; }
            }

            public string RodentOrigin
            {
                get { return rodentOrigin; }
                set { rodentOrigin = value; }
            }

            public string OriginOther
            {
                get { return originOther; }
                set { originOther = value; }
            }
            #endregion
        }
        #endregion

        #region LabLocation
        public class LabLocation
        {
            private string buildingCode;
            private string roomNumber;
            
            public string BuildingCode
            {
                get { return buildingCode; }
                set { buildingCode = value; }
            }

            public string RoomNumber
            {
                get { return roomNumber; }
                set { roomNumber = value; }
            }
           
        }
        #endregion

        #region Procedure
        public class Procedure
        {
            private string surgName;
            private string surgicalType;
            private string survival;
            private string building;
            private string room;
            private string painCat;

            public string SurgName
            {
                get { return surgName; }
                set { surgName = value; }
            }

            public string SurgicalType
            {
                get { return surgicalType; }
                set { surgicalType = value; }
            }

            public string Survival
            {
                get { return survival; }
                set { survival = value; }
            }

            public string Building
            {
                get { return building; }
                set { building = value; }
            }

            public string Room
            {
                get { return room; }
                set { room = value; }
            }

            public string PainCat
            {
                get { return painCat; }
                set { painCat = value; }
            }
        }
        #endregion

        #region Hazardous Agent
        public class HazardousAgent
        {
            #region private members
            private string hazardType;
            private string room;
            private string dose;
            private string route;
            private string totalDoses;
            private string duration;
            private string manipulations;
            private string isotope;
            private string permitNum;
            private string permitName;
            private string frequency;
            private string chemical;
            private string bioAgent;

           
            private ArrayList building;
            
            #endregion

            #region public Props
            public string HazardType
            {
                get { return hazardType; }
                set { hazardType = value; }
            }

            public string Room
            {
                get { return room; }
                set { room = value; }
            }

            public string Dose
            {
                get { return dose; }
                set { dose = value; }
            }

            public string Route
            {
                get { return route; }
                set { route = value; }
            }

            public string TotalDoses
            {
                get { return totalDoses; }
                set { totalDoses = value; }
            }

            public string Duration
            {
                get { return duration; }
                set { duration = value; }
            }

            public string Manipulations
            {
                get { return manipulations; }
                set { manipulations = value; }
            }

            public string Isotope
            {
                get { return isotope; }
                set { isotope = value; }
            }

            public string PermitNum
            {
                get { return permitNum; }
                set { permitNum = value; }
            }

            public string PermitName
            {
                get { return permitName; }
                set { permitName = value; }
            }

            public string Frequency
            {
                get { return frequency; }
                set { frequency = value; }
            }

            public string Chemical
            {
                get { return chemical; }
                set { chemical = value; }
            }

            public string BioAgent
            {
                get { return bioAgent; }
                set { bioAgent = value; }
            }
            

            public ArrayList Building
            {
                get { return building; }
                set { building = value; }
            }

            public HazardousAgent()
            {
                building = new ArrayList();
                
                hazardType = string.Empty;
                room = string.Empty;
                dose = string.Empty;
                route = string.Empty;
                totalDoses = string.Empty;
                duration = string.Empty;
                manipulations = string.Empty;
                isotope = string.Empty;
                permitNum = string.Empty;
                permitName = string.Empty;
                frequency = string.Empty;
                chemical = string.Empty;
            }            
            #endregion
        }
        #endregion

        #region Tissue Type
        public class Tissue
        {
            #region private members
            private string type;
            private string source;
            private string protocolContact;
			private string vendorName;
            #endregion

            #region public props

			public string Type
			{
				get { return type; }
				set { type = value; }
			}

			public string Source
			{
				get { return source; }
				set { source = value; }
			}

			public string ProtocolContact
			{
				get { return protocolContact; }
				set { protocolContact = value; }
			}

			public string VendorName
			{
				get { return vendorName; }
				set { vendorName = value; }
			}

            #endregion 
            
        }
        #endregion

		#region Board Reviews
		public class BoardReview
		{
			#region private members
			private int period;
			private string documentType;
			private int mailGroupId;
			private string reviewType;
			private int meetingId;
			private DateTime statusDate;
			private bool reviewers;
			private string boardStatus;
			private string overallStatus;
			private bool currentStatus;
			private string note;
			private string rtfNote;
			private string staffNote;
			private string staffNoteRTF;
			private DateTime dateNotified;
			private DateTime dateResponded;
			private bool vetMonitor;
			#endregion

			#region Properties
			public int Period
			{
				get { return period; }
				set { period = value; }
			}
			public string DocumentType
			{
				get { return documentType; }
				set { documentType = value; }
			}
			public int MailGroupId
			{
				get { return mailGroupId; }
				set { mailGroupId = value; }
			}
			public string ReviewType
			{
				get { return reviewType; }
				set { reviewType = value; }
			}
			public int MeetingId
			{
				get { return meetingId; }
				set { meetingId = value; }
			}
			public DateTime StatusDate
			{
				get { return statusDate; }
				set { statusDate = value; }
			}
			public bool Reviewers
			{
				get { return reviewers; }
				set { reviewers = value; }
			}
			public string BoardStatus
			{
				get { return boardStatus; }
				set { boardStatus = value; }
			}
			public string OverallStatus
			{
				get { return overallStatus; }
				set { overallStatus = value; }
			}
			public bool CurrentStatus
			{
				get { return currentStatus; }
				set { currentStatus = value; }
			}
			public string Note
			{
				get { return note; }
				set { note = value; }
			}
			public string RTFNote
			{
				get { return rtfNote; }
				set { rtfNote = value; }
			}
			public string StaffNote
			{
				get { return staffNote; }
				set { staffNote = value; }
			}
			public string StaffNoteRTF
			{
				get { return staffNoteRTF; }
				set { staffNoteRTF = value; }
			}
			public DateTime DateNotified
			{
				get { return dateNotified; }
				set { dateNotified = value; }
			}
			public DateTime DateResponded
			{
				get { return dateResponded; }
				set { dateResponded = value; }
			}
			public bool VetMonitor
			{
				get { return vetMonitor; }
				set { vetMonitor = value; }
			}
			#endregion
		}
		#endregion

        #region protocol properties
        public DateTime DateClosed
        {
            get { return dateClosed; }
            set { dateClosed = value; }
        }

        public bool HousingOver12
        {
            get { return housingOver12; }
            set { housingOver12 = value; }
        }

        public bool FedFund
        {
            get { return fedFund; }
            set { fedFund = value; }
        }

        public bool Resubmission
        {
            get { return resubmission; }
            set { resubmission = value; }
        }

        public bool SpecialConsideration
        {
            get { return specialConsideration; }
            set { specialConsideration = value; }
        }

        public string AnnReviewNotes
        {
            get { return annReviewNotes; }
            set { annReviewNotes = value; }
        }

        public string ProjectStatus
        {
            get { return projectStatus; }
            set { projectStatus = value; }
        }

        public string PreviousFolderNumber
        {
            get { return previousFolderNumber; }
            set { previousFolderNumber = value; }
        }

        public string HousingLocationOther
        {
            get { return housingLocationOther; }
            set { housingLocationOther = value; }
        }

        public string Objective
        { 
            get { return objective; }
            set { objective = value; }
        }

        public string Significance  
        {
            get { return significance; }
            set { significance = value; }
        }

        public string SimExp
        {
            get { return simExp; }
            set { simExp = value; }
        }

        public string Prior
        {
            get { return prior; }
            set { prior = value; }
        }

        public string Endpoints
        {
            get { return endpoints; }
            set { endpoints = value; }
        }

        public ArrayList HousingLocation
        {             
            get { return housingLocation; }
            set { housingLocation = value; }
        }

        public ArrayList SpecialHandling
        {
            get { return specialHandling; }
            set { specialHandling = value; }
        }

        public ArrayList Considerations
        {
            get { return considerations; }
            set { considerations = value; }
        }

        public ArrayList TumorCellLines
        {
            get { return tumorCellLines; }
            set { tumorCellLines = value; }
        }

        public ArrayList HazardousAgents
        {
            get { return hazardousAgents; }
            set { hazardousAgents = value; }
        }

        public ArrayList Procedures
        {
            get { return procedures; }
            set { procedures = value; }
        }
        
		public ArrayList LabLocations
        {
            get { return labLocations; }
            set { labLocations = value; }
        }

		public ArrayList Tissues
		{
			get { return tissues; }
			set { tissues = value; }
		}

		public ArrayList BoardReviews
		{
			get { return boardReviews; }
			set { boardReviews = value; }
		}

        
        public int CatBNum
        {
            get { return catBNum; }
            set { catBNum = value; }
        }
        
        public int CatCNum
        {
            get { return catCNum; }
            set { catCNum = value; }
        }

        public int CatDNum
        {
            get { return catDNum; }
            set { catDNum = value; }
        }

        public int CatENum
        {
            get { return catENum; }
            set { catENum = value; }
        }

        public int PeriodID
        {
            get { return periodID; }
            set { periodID = value; }
        }

        public int AnimalsOrdered
        {
            get { return animalsOrdered; }
            set { animalsOrdered = value; }
        }

        public int AnimalsReported
        {
            get { return animalsReported; }
            set { animalsReported = value; }
        }

        public int AdultsOrdered
        {
            get { return adultsOrdered; }
            set { adultsOrdered = value; }
        }

        public int AdultsReported
        {
            get { return adultsReported; }
            set { adultsReported = value; }
        }
        
        public int FemaleLitterOrdered
        {
            get { return femaleLitterOrdered; }
            set { femaleLitterOrdered = value; }
        }

        public int FemaleLitterReported
        {
            get { return femaleLitterReported; }
            set { femaleLitterReported = value; }
        }

        public int GeneratedReported
        {
            get { return generatedReported; }
            set { generatedReported = value; }
        }

        public int OtherOrdered
        {
            get { return otherOrdered; }
            set { otherOrdered = value; }
        }

        public int OtherReported
        {
            get { return otherReported; }
            set { otherReported = value; }
        }

        public int TotalNumberOfAnimals
        {
            get { return totalNumberOfAnimals; }
            set { totalNumberOfAnimals = value; }
        }

        public bool IsAmendment
        {
            get { return isAmendment; }
            set { isAmendment = value; }
        }













        #endregion
    }
}
